﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Spring.Data;
using Spring.Dao;
using GestionadorBaseDatos;


namespace CRUD
{
    /// <summary>
    /// Realiza la asignacion de atributos de la tabla APUESTA a los atributos de la clase Apuesta
    /// </summary>
    class ApuestaRowMapper : IRowMapper
    {
        public object MapRow(IDataReader iDataReader, int rowNumber)
        {

            Apuesta apuesta = new Apuesta();
            Proporcion proporcionAsociado = new Proporcion();
            Participante participanteAsociado = new Participante();
            Categoria categoriaAsociada = new Categoria();
            Evento eventoAsociado = new Evento();
            Pago pagoAsociado = new Pago();
            Usuario usuarioAsociado = new Usuario();
            FormaPago formaPagoAsociado = new FormaPago();

            apuesta.IdApuesta = iDataReader.GetInt32(0);
            apuesta.Monto = iDataReader.GetInt32(1);
            apuesta.FechaApuesta = iDataReader.GetDateTime(2);
            participanteAsociado.IdParticipante = iDataReader.GetInt32(3);
            categoriaAsociada.IdCategoria = iDataReader.GetInt32(4);
            eventoAsociado.IdEvento = iDataReader.GetInt32(5);
            usuarioAsociado.Nickname = iDataReader.GetString(6);
            formaPagoAsociado.IdFormaPago = iDataReader.GetInt32(7);
            participanteAsociado.CategoriaFk = categoriaAsociada;
            proporcionAsociado.EventoAsociado = eventoAsociado;
            proporcionAsociado.Participante = participanteAsociado;
            pagoAsociado.UsuarioAsociado = usuarioAsociado;
            pagoAsociado.FormaPagoAsociado = formaPagoAsociado;
            apuesta.PagoAsociado = pagoAsociado;
            apuesta.ProporcionAsociado = proporcionAsociado;

            return apuesta;
        }
    }
}

